package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.RoleBean;
import com.project.bean.SupplierBean;
import com.project.bean.UserBean;

import java.util.List;

public interface IRoleService {
    /**
     * 查询所有的角色
     * @return 角色集合
     */
    List<RoleBean> findAll();

    /**
     * 添加新角色
     * 先添加角色表中的信息，获取角色主键再进行角色/权限中间表的添加
     * @param role 角色对象
     * @param roleIdArray 拥有的权限数组
     */
     void add(RoleBean role, Integer[] roleIdArray);

    /**
     * 动态分页查询
     * @param pageNO 页码
     * @return
     */
    IPage<RoleBean> findByItem(Integer pageNO);

    /**
     * 通过id删除角色
     * 先删除该角色对应的权限信息，角色/权限中间表中的所有信息
     * 再删除该角色对应的用户角色信息，用户/角色表信息
     * 最后删除角色表中该角色的信息
     * @param id
     */
    void del(Integer id);

    /**
     * 通过id查询角色信息，同时查询角色对应的权限集合
     * @param id id编号
     * @return 角色对象
     */
   RoleBean findById(Integer id);

    /**
     * 通过编号修改角色拥有的权限
     * 先删除角色/权限中间表的信息，然后再添加该角色的新权限
     * @param id
     * @param gradeArray
     */
   void update(Integer id,Integer[] gradeArray);
}
